# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

TEST_DIRS += ['test/extensions']

MOCHITEST_MANIFESTS += ['test/mochitest.ini']

BROWSER_CHROME_MANIFESTS += ['test/browser.ini']

MOCHITEST_CHROME_MANIFESTS += ['test/chrome.ini']

XPCSHELL_TESTS_MANIFESTS += [
    'test/unit/xpcshell-child-process.ini',
    'test/unit/xpcshell-parent-process.ini'
]

MOCHITEST_MANIFESTS += ['test/mochitest-intl-api.ini']

EXPORTS.mozilla.dom += [
    'IDBCursor.h',
    'IDBDatabase.h',
    'IDBEvents.h',
    'IDBFactory.h',
    'IDBFileHandle.h',
    'IDBFileRequest.h',
    'IDBIndex.h',
    'IDBKeyRange.h',
    'IDBMutableFile.h',
    'IDBObjectStore.h',
    'IDBRequest.h',
    'IDBTransaction.h',
    'IDBWrapperCache.h',
    'IndexedDatabase.h',
    'IndexedDatabaseManager.h',
]

EXPORTS.mozilla.dom.indexedDB += [
    'ActorsParent.h',
    'FileSnapshot.h',
    'Key.h',
    'KeyPath.h',
    'SerializationHelpers.h',
]

SOURCES += [
    'ActorsChild.cpp',
    'FileInfo.cpp',
    'FileSnapshot.cpp',
    'IDBCursor.cpp',
    'IDBDatabase.cpp',
    'IDBEvents.cpp',
    'IDBFactory.cpp',
    'IDBFileHandle.cpp',
    'IDBFileRequest.cpp',
    'IDBIndex.cpp',
    'IDBKeyRange.cpp',
    'IDBMutableFile.cpp',
    'IDBObjectStore.cpp',
    'IDBRequest.cpp',
    'IDBTransaction.cpp',
    'IDBWrapperCache.cpp',
    'IndexedDatabaseManager.cpp',
    'KeyPath.cpp',
    'PermissionRequestBase.cpp',
    'ReportInternalError.cpp',
    'ScriptErrorHelper.cpp',
]

SOURCES += [
    'ActorsParent.cpp', # This file is huge.
    'Key.cpp', # We disable a warning on this file only
]

IPDL_SOURCES += [
    'PBackgroundIDBCursor.ipdl',
    'PBackgroundIDBDatabase.ipdl',
    'PBackgroundIDBDatabaseFile.ipdl',
    'PBackgroundIDBDatabaseRequest.ipdl',
    'PBackgroundIDBFactory.ipdl',
    'PBackgroundIDBFactoryRequest.ipdl',
    'PBackgroundIDBRequest.ipdl',
    'PBackgroundIDBSharedTypes.ipdlh',
    'PBackgroundIDBTransaction.ipdl',
    'PBackgroundIDBVersionChangeTransaction.ipdl',
    'PBackgroundIndexedDBUtils.ipdl',
    'PIndexedDBPermissionRequest.ipdl',
]

include('/ipc/chromium/chromium-config.mozbuild')

FINAL_LIBRARY = 'xul'

if CONFIG['GNU_CC']:
    # Suppress gcc warning about a comparison being always false due to the
    # range of the data type
    SOURCES['Key.cpp'].flags += ['-Wno-error=type-limits']
    CXXFLAGS += ['-Wno-error=shadow']

LOCAL_INCLUDES += [
    '/db/sqlite3/src',
    '/dom/base',
    '/dom/storage',
    '/dom/workers',
    '/ipc/glue',
    '/xpcom/build',
    '/xpcom/threads',
]
